import request from "@/utils/request";

const DEPT_BASE_URL = "/api/v1/dept";

const PostManagementAPI = {
  /**
   * 获取岗位列表
   *
   * @param queryParams 查询参数（可选）
   * @returns 岗位分页表格数据
   */
  getList(queryParams?: any) {
    return request<any, PageResult<PostManagementVO[]>>({
      url: `/v1/orgPosts/page`,
      method: "post",
      data: queryParams,
    });
  },

  /**
   * 获取部门表单数据
   *
   * @param id 部门ID
   * @returns 部门表单数据
   */
  getFormData(id: string) {
    return request<any, PostManagementForm>({
      url: `${DEPT_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /**
   * 新增部门
   *
   * @param data 部门表单数据
   * @returns 请求结果
   */
  create(data: PostManagementForm) {
    return request({
      url: `${DEPT_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 修改部门
   *
   * @param id 部门ID
   * @param data 部门表单数据
   * @returns 请求结果
   */
  update(id: string, data: PostManagementForm) {
    return request({
      url: `${DEPT_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 删除岗位
   *
   * @param id 岗位ID
   * @returns 请求结果
   */
  deleteByIds(id?: string) {
    return request({
      url: `${DEPT_BASE_URL}/${id}`,
      method: "delete",
    });
  },
};

export default PostManagementAPI;

/** 岗位列表查询参数 */
export interface PostManagementQuery extends PageQuery {
  /** 搜索关键字 */
  keywords?: string;
  /** 列名称 */
  colName?: string;
}

/** 岗位表格类型 */
export interface PostManagementVO {
  /** 组织ID */
  orgId: string;
  /** 岗位名称 */
  posName: string;
  /** 部门ID */
  deptId: string;
  /** 部门名称 */
  deptName: string;
  /** 组织名称 */
  orgName: string;
}

/** 岗位表单类型 */
export interface PostManagementForm {
  /** 部门ID(新增不填) */
  id?: string;
  /** 部门名称 */
  name?: string;
  /** 部门编号 */
  code?: string;
  /** 父部门ID */
  parentId: string;
  /** 排序 */
  sort?: number;
  /** 状态(1:启用；0：禁用) */
  status?: number;
}
